import axios from "axios";
import { ElLoading } from 'element-plus'
import { ref } from "vue";

const loadingInsting=ref(null)

const instance = axios.create({
    baseURL: process.env.NODE_ENV==='development' ? 'api' : '',
    timeout: 1000,
    headers: {'X-Custom-Header': 'foobar'}
  });

  // 添加请求拦截器
  instance.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    config.headers.Authorization='Bearer'+localStorage.getItem('accessToken')
    loadingInsting.value=ElLoading.service({fullscreen:true})
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    setTimeout(() => {
        loadingInsting.value.close()
      }, 1000)
      if(response.data.code!==200){
        if(response.data.code==301){
            return Promise.reject('内存');
        }else if(response.data.code==401){
          return Promise.reject('Token过期');
            
        }else if(response.data.code==403){
          return Promise.reject('暂无权限');
            
        }else if(response.data.code==404){
          return Promise.reject('资源没找到');
            
        }
        else if(response.data.code==500){
          return Promise.reject('服务器有误');
            
        }

      }
    
    return response;
  }, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
  });
  export default instance